package cn.xfdzx.android.apps.shop.contract;

import cn.xfdzx.android.apps.shop.base.BaseView;
import cn.xfdzx.android.apps.shop.bean.ConfirmGoodBeen;
import cn.xfdzx.android.apps.shop.bean.CreatePusherBeen;
import cn.xfdzx.android.apps.shop.bean.LogininfoBean;
import cn.xfdzx.android.apps.shop.bean.VideoInfoBeen;
import cn.xfdzx.android.apps.shop.bean.VideoRoomGoodListBeen;
import io.reactivex.Flowable;


/**
 * @author azheng
 * @date 2018/6/4.
 * Description：
 */

public interface VideoInfoContract {
    interface Model {
        Flowable<VideoInfoBeen> videoInfo(String live_id);

        Flowable<LogininfoBean> getLiveImLogin(String id, String type);

        //获取商品列表
        Flowable<VideoRoomGoodListBeen> videoRoomGoodList(String live_id);
        Flowable<ConfirmGoodBeen> addCar(String is_new, String uniqueId, String productId, String cartNum, String relation_type, String relation_id);

        Flowable<VideoRoomGoodListBeen> getLiveRoomFocus(String live_id);

        Flowable<VideoRoomGoodListBeen> getLiveRoomZan(String live_id);
    }

    interface View extends BaseView {
        @Override
        void showLoading();

        @Override
        void hideLoading();

        @Override
        void onError(Throwable throwable);

        void onVideoInfoSuccess(VideoInfoBeen bean);

        void getLiveImLoginSuccess(LogininfoBean bean);

        void onVideoRoomGoodListSuccess(VideoRoomGoodListBeen bean);

        void onAddCarSuccess(ConfirmGoodBeen bean);

        void onLiveRoomFocusSuccess(VideoRoomGoodListBeen bean);

        void onLiveRoomZanSuccess(VideoRoomGoodListBeen bean);
    }

    interface Presenter {
        /**
         *
         */
        void videoInfo(String live_id);

        /**
         * IM登录
         *
         * @param type
         */
        void getLiveImLogin(String id,String type);

        void videoRoomGoodList(String live_id);

        void addCar(String is_new,String uniqueId,String productId,String cartNum, String relation_type, String relation_id);

        void getLiveRoomFocus(String live_id);

        void getLiveRoomZan(String live_id);
    }
}
